/**
 * 权限检查工具函数
 */

/**
 * 检查用户是否具有指定角色权限
 * @param {string[]} requiredRoles - 需要的角色列表
 * @returns {boolean} - 是否具有权限
 */
export const hasPermission = (requiredRoles) => {
  // 如果没有指定所需角色，则默认有权限
  if (!requiredRoles || requiredRoles.length === 0) {
    return true
  }
  
  // 从localStorage和sessionStorage获取用户角色
  const localRole = localStorage.getItem('userRole')
  const sessionRole = sessionStorage.getItem('userRole')
  
  // 优先使用sessionStorage中的角色，如果不存在则使用localStorage中的角色
  const userRole = sessionRole || localRole
  
  // 如果没有用户角色，则无权限
  if (!userRole) {
    return false
  }
  
  // 确保userRole是字符串类型
  const normalizedUserRole = String(userRole).toUpperCase()
  
  // 检查用户角色是否在所需角色列表中
  return requiredRoles.some(role => String(role).toUpperCase() === normalizedUserRole)
}

/**
 * 检查用户是否具有教师或管理员权限
 * @returns {boolean} - 是否具有教师或管理员权限
 */
export const isTeacherOrAdmin = () => {
  return hasPermission(['TEACHER', 'ADMIN'])
} 